.model tiny

.data
My_line		db 'Smth', 0h		; 0dh, 0ah

.code

include sysproc.asm

org 100h

jumps
locals @@

Start:


		mov bx, offset My_line
		
		call StrLen
		
		mov ax, 4c00h
		int 21h

;===============================================================================
; Calculates string length
; 
; Entry: BX -> ptr to string
; Exit:  CX - string length
; 
; Destr: 
;===============================================================================
;\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\

StrLen		proc
		
		xor cx, cx
		
		test bx, bx
		jz @@Exit
		
@@Main:		cmp byte ptr [bx], 0	
		jz @@Next
		inc bx
		loop @@Main
		
@@Next:		neg cx
		jmp @@Exit

@@Exit:		ret
		endp

;/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/\-/
;===============================================================================

end	Start
